package com.shrcl.engineerprocess.domain;

import com.shrcl.engineerprocess.domain.Engineer;
import com.shrcl.engineerprocess.domain.TaskNotification;
import com.shrcl.engineerprocess.domain.impl.EngineerNotitableTaskExtensionImpl;
import com.shrcl.engineerprocess.domain.proxy.EngineerNotitableTaskExtensionProxy;
import edu.fudan.langlab.domain.task.NotifiableTask;
import edu.fudan.langlab.domain.task.TSKTaskExtension;
import edu.fudan.mylang.pf.EntityImplementation;
import java.util.Date;

@EntityImplementation(implementBy = EngineerNotitableTaskExtensionImpl.class)
public interface EngineerNotitableTaskExtension extends TSKTaskExtension, NotifiableTask {
  public abstract TaskNotification getTaskNotification();
  
  public abstract EngineerNotitableTaskExtension setTaskNotification(final TaskNotification taskNotification);
  
  public abstract String getTaskName();
  
  public abstract Date getNotifyDate();
  
  public abstract Engineer getEngineer();
  
  public abstract void taskInfoNotify();
  
  public abstract void createTaskNotification();
  
  public abstract EngineerNotitableTaskExtensionProxy toProxy();
}
